// package com.zy.comm.config;
//
// import com.alibaba.druid.pool.DruidDataSource;
//
// import io.seata.rm.datasource.DataSourceProxy;
//
// import javax.sql.DataSource;
//
// import org.apache.ibatis.session.SqlSessionFactory;
// import org.mybatis.spring.SqlSessionFactoryBean;
// import org.mybatis.spring.transaction.SpringManagedTransactionFactory;
// import org.springframework.boot.context.properties.ConfigurationProperties;
// import org.springframework.context.annotation.Bean;
// import org.springframework.context.annotation.Configuration;
// import org.springframework.context.annotation.Primary;
// import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
//
//
//
// /**
//  * @author 这是那头猪？
//  * @version 1.0
//  * @description: 数据源代理, seata对数据源做了代理和接管，在每个参与分布式事务的服务中，都要做如下配置：
//  * @date 2023/10/18 10:58
//  */
//
// @Configuration
// public class DataSourceConfiguration {
//
//     @Bean
//     @ConfigurationProperties(prefix = "spring.datasource")
//     public DataSource druidDataSource() {
//         DruidDataSource druidDataSource = new DruidDataSource();
//         return druidDataSource;
//     }
//
//     @Primary
//     @Bean("dataSource")
//     public DataSourceProxy dataSource(DataSource druidDataSource) {
//         return new DataSourceProxy(druidDataSource);
//     }
//
//     @Bean
//     public SqlSessionFactory sqlSessionFactory(DataSourceProxy dataSourceProxy) throws Exception {
//         SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
//         sqlSessionFactoryBean.setDataSource(dataSourceProxy);
//         sqlSessionFactoryBean.setMapperLocations(
//                 new PathMatchingResourcePatternResolver().getResources("classpath*:/mapper/*.xml"));
//         sqlSessionFactoryBean.setTransactionFactory(new SpringManagedTransactionFactory());
//         return sqlSessionFactoryBean.getObject();
//     }
//
// }
